شکل زير ساختار يک سند XML را نشان می دهد . بر روی بخش های رنگی کليک نموده تا اطلاعات تکميلی در رابطه با هر يک را مشاهده نمائيد .
برگشت به ساختار سند XML
Document Elements . المان ها (Elements) بمنزله ستون فقرات در سندهای XML مطرح و ساختار مورد نياز جهت پردازش های لازم توسط برنامه های ذيربط و يا style-sheet را فراهم می نمايند. المان ها با استفاده از تگ مربوطه که نام يک المان را مشخص می نمايد ، تعريف می گردنند. المان ها می توانند دارای نام و مقادير مربوط به يک Attribute نيز باشند. خصايص فوق، اطلاعات اضافه تری را نسبت به محتويات يک سند مشخص خواهند کرد.تمامی المان ها می بايست دارای نام باشند. اسامی المان ها بر روی حروف بزرگ و کوچک حساس بوده و می بايست حتما" با يک حرف و يا Underscore آغاز گردند.اسامی المان ها می تواند شامل حروف، ارقام ، hypen,underscore و نقطه باشد. ( کاراکتر colon برای namespace ها رزو شده است ) . هر تگ محدوده مربوط به يک المان را مشخص می نمايد. تگ شروع يک المان ، دارای گرامری مشابه زير است :.
برای المان هائی که دارای Attribute نمی باشند ، تگ شروع بصورت زير تعريف می گردد.
تگ پايان ، انتهای يک المان را مشخص کرده و نمی تواند شامل Attribute باشد. تگ های فوق همواره دارای شکل عمومی زير خواهند بود:
يک المان همواره محصور بين تگ های شروع و پايان است .
در مثال فوق المان Person دارای دو المان ديگر به نام FirstName و LastName است. المان FirstName شامل مقدار Ali و المان LastName شامل مقدار Irani است . از تگ های خالی ، در موارديک المان مورد نظر دارای محتوياتی نباشد ، استفاده می گردد. برای نشان دادن اين نوع تگ ها به دو صورت می توان رفتار نمود: در روش اول در ابتدا يک تگ شروع و بلافاصله يک تگ پايان قرار می گيرد.
در روش دوم ، می توان صرفا" از يک تگ خالی بصورت استفاده کرد .
ارتباط المان ها با يکديگر : بمنظور تشريح المان های موجود در يک سند XML ، می توان از دو روش ساختار درختواره ای و يا ساختار فاميلی استفاده کرد . سند XML ، می بايست دارای يک المان ريشه و يا يک سند (Document) باشد. المان ريشه ، شامل ساير محتويات سند خواهد بود. کدهای زير يک المان ريشه با نام Person را تعريف می کند.
يک سند XML ، نمی تواند شامل دو المان ريشه باشد. کدهای زير يک سند XML نادرست را نشان می دهد .
در ساختار درختواره ای ، برگ ها بمنزله المان ها ئی بوده که خود شامل المان ديگری نمی باشند. ( نظير برگ های موجود در يک شاخه درخت ) . عناصر برگ ، المان هائی هستند که صرفا" شامل متن و يا تهی می باشند ( گره خالی و يا گره های شامل متن ) . در مثال فوق مشخصات مربوط به هر مقاله در المان های برگ ذخيره می گردنند. در ساختار فاميلی ارتباطات بين المان ها از طريق : Parent,Child,Ancestor, Descendant , Sibiling تشريح می گردد.
برگشت به ساختار سند XML
Xml Decleration . بخش فوق در اکثر سندهای XML در اولين خط قرار خواهد گرفت . استفاده از تعريف فوق الزامی نبوده و در صورتيکه نياز ، می بايست بعنوان اولين خط در سندهای XML قرار گيرد. بخش تعاريف در يک سند Xml از اجزای زير تشکيل شده است :
xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
برگشت به ساختار سند XML
Processing Instructions . از بخش فوق برای پاس دادن اطلاعات به ساير برنامه ها استفاده می گردد. دستورالعمل های پردازش الزامی به داشتن يک گرامر داخلی نداشته و ممکن است از کاراکترهای نشانه گذاری استفاده نمايند. بدين ترتيب امکان استفاده آنان در هر محل از سند و خارج از نشانه گذاری ها امکان پذير خواهد بود . دستورات فوق ، می توانند در prolog ، بهمراه DTD و يا در بخش محتويات استفاده گردند . نحوه نمايش دستورالعمل های پردازش توسط Schema و يا پردازنده های DTD توضيح داده نخواهند شد. دستورالعمل های پردازشی می بايست با يک شناسه Target آغاز گردنند. اين نوع شناسه ها نسبت به حروف بزرگ و کوچک حساس بوده و می بايست با يک حرف و يا يک UnderScore آغاز گردنند. کدهای زير نمونه ای از دستورالعمل های پردازشی را نشان می دهد.
دستورالعمل های فوق با <؟ خاتمه خواهند يافت .
Style Sheet Processing Instructions . شرکت مايکروسافت در هماهنگی با W3C اقدام به پياده سازی يک دستورالعمل پردازشی با نام Xml-StyleSheet نموده است . دستورالعمل فوق می بايست در بخش prolog و قبل از المان ريشه قرار گيرد . نحوه بکارگيری دستور فوق به شکل زير است :
type ، يک text/css ( در صورت لينک به فايل Cascading Style Sheet ) و يا text/XSL ( در صورت لينک به فايل XSLT ) است . Uri)Universal resource Identifier) آدرس محل استقرار stylesheet را مشخص کرده و با آدرس محل استقرار سند xml ارتباط خواهد داشت . کدهای زير نمونه ای از دستورالعمل های پردازش ، برای يک Style-Sheet را نشان می دهد که با استفاده از يک CSS ايجاد شده است .
xml-stylesheet href="/style.css" type="text/css" title="default stylesheet" ?>
|
کدهای زير نحوه بکارگيری و تعريف يک Style-Sheet را که بر اساس XSL ايجاد شده است را نشان می دهد.
xml-stylesheet href="/style.xsl" type="text/xsl" title="default stylesheet" ?>
|
برگشت به ساختار سند XML
DocType Declerations . بخش فوق ، امکان مشخص نمودن المان ريشه و DTD)Document Type Definition) را با مراجعه به يک فايل خارجی و يا از طريق تعاريف مستقيم ( داخلی ) برای يک سند XML فراهم می نمايد . تعريف يک DOCType شامل موارد زير است :
-
نام سند و يا المان ريشه ( وجود بخش فوق زمانيکه از تعاريف DocType استفاده می گردد ،الزامی است ) .
-
شناسه های system و Public برای DTD بمنظور بررسی صحت ساختار سند.
-
يک زير مجموعه داخلی از تعاريف DTD . بخش فوق بين علائم [ و ] قرار خواهد گرفت .
در ساده ترين حالت تعريف DocType ، صرفا" المان ريشه معرفی می گردد.
اغلب سندهائی که از بخش تعاريف DocType استفاده می کنند به يک سند خارجی که شامل تعاريف مربوطه برای ايجاد DTD است، مراجعه خواهند کرد .
URIreference به فايلی که شامل تعاريف است ، اشاره می نمايد.
PublicIdentifier شناسه ای مجزا را معرفی می نمايد که برخی پارسر ها را قادر به استفاده از آن جهت مراجعه به DTD در مقابل URIreference باشند. دربخش تعاريف DocType ،می توان اقدام به درج تعاريف بصورت مستقيم کرد . در چنين مواردی از گرامر زير استفاده می گردد:
در صورتيکه تعاريف DTD با يک فايل خارجی مرتبط می گردنند ،از گرامر زير استفاده می گردد.
برگشت به ساختار سند XML
Comments .از بخش فوق بمنظور درج توضيحات لازم در رابطه با سند XML استفاده می گردد . در چنين مواردی پارسر، عمليات خاصی را بر روی آنها ( توضيحات ) انجام نخواهد داد. توضيحات با علامت--!> شروع و با علامت < -- خاتمه می يابد . عبارت زير توضيحات دلخواهی را در يک سند XML درج می نمايد .
توضيحات می توانند در بخش prolog ، همراه DTD ، بعد از سند و يا در قسمت محتويات درج گردند. امکان استفاده از توضيحات بهمراه Attribute و يا درون تگ ها وجود ندارد . پارسر با مشاهده < -- از خاتمه توضيحات آگاه و عمليات عادی خود برای پردازش سند XML را دنبال ( پس از يک وقفه کوتاه همزمان با درج توضيحات ) خواهد کرد . با توجه به رسالت <-- ، ( خاتمه دهنده توضيحات ) نمی توان از آن در بخش های متفاوت عبارات مندرچ در قسمت توضيحات استفاده کرد . بجزء محدوديت فوق ، امکان استفاده از ساير کاراکترهای مجاز XML در بخش توضيحات ، ميسر خواهد بود . ( مشابه بخش CDATA) .
برگشت به ساختار سند XML
NameSpace . با استفاده از XML namespace ، می توان اين اطمينان را پيدا نمود که بين اسامی المان ها ی مشابه ( با مفا هيم متفاوت ) تداخل و تعارضی بوجود نخواهد آمد.
برگشت به ساختار سند XML
Attribute . ويژگی فوق،امکان مشخص نمودن و تعريف اطلاعات تکميلی در رابطه با يک المان را فراهم می نمايد.از Attribute برای تعريف Property های يک المان نيز استفاده می گردد.Attribute ها را می بايست در تگ های شروع و يا خالی استفاده کرد . گرامراستفاده از Attribute بصورت زير است :
Attribute ، می بايست دارای نام و مقدار باشد. يک المان نمی تواند دارای دو attribute باشد.
برگشت به ساختار سند XML
CDATA . در اين بخش به پارسر اعلان می گردد که کدهای نشانه گذاری در کاراکترهای موجود در بخش CDATA وجود ندارد. بخش فوق اغلب مورد استفاده زبانهای اسکريپت و نمونه محتويات HTML,XML است . زمانيکه پارسر با ] CDATA] ! > مواجه می گردد ، هيچگونه تفسيری در رابطه کاراکترهای موجود در بخش فوق را انجام نخواهد داد . پارسر با مواجه شدن با <[[ ، عمليات عادی خود برای تفسير را دنبال ادامه خواهد داد ( پس از يک توقف کوتاه و صرفا" ارائه گزارش ) . گرامراستفاده از CDATA بصورت زير است .
برگشت به ساختار سند XML
Character and entity Refrences . امکان درج مستقيم کد حروف در يک سند XML نيز وجود دارد. ( در اين حالت برای درج حروف از تايپ کاراکترها بصورت مستقيم استفاده نشده است ) . استفاده از ويژگی فوق در موارد زير مفيد خواهد بود :
-
امکان درج مستقيم کاراکترها در يک سند (بدليل تفسير آنان بعنوان کدهای نشانه گذاری) وجود نداشته باشد .
-
امکان درج مستقيم کاراکترها بدليل محدوديت دستگاه ورود اطلاعات وجود داشته باشد .
-
امکان ارسال مطمئن کاراکترها از طريق پردازنده ئی با محدوديت کاراکترهای تک بايت وجود داشته باشد .
-
يک رشته و يا بخشی از سند بصورت متناوب تکرار و می توان آن را بصورت مختصر استفاده کرد .
بمنظور ارائه محتويات دلخواه ، XML از تعدادی عبارت خاص که با علامت & شروع و با ; خاتمه می يابند، استفاده می نمايد . مرجع کاراکترها ، امکانی را بمنظور درج کاراکترهای Unicode که توسط يک عدد مشخص می گردند ، فراهم می نمايد . برای درج کدهای مربوطه می توان از مبنای ده و يا شانزده استفاده کرد . برای درج کد با استفاده از مبنای ده از; value#& و برای مبنای شانزده از ; x value#& استفاده می گردد. مثلا" برای درج علامت يورو در يک سند XML می توان از ; x20AC#& و يا ; z8364 #& استفاده کرد . جدول زير پنج entity از قبل ساخته شده برای کاراکترهای استفاده شده در يک سند XML را نشان می دهد .
Entity
|
Entity Reference |
Meaning |
lt |
< |
< ( less than) |
gt |
> |
> (greater than) |
amp |
& |
& (ampersand) |
apos |
' |
' (apostroph or single quote) |
quot |
" |
" (double quote) |
Textual content . در سندهای XML ، امکان استفاده از کدهای Unicode و مجموعه وسيعی از کاراکترها شامل حروف، ارقام و ... وجود دارد.